package ejemplo;

import java.io.*;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.*;

public class Update extends HttpServlet {

  private AccesoDatos ad;
  private String mensaje;

  protected void processRequest(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {} 

  @Override
  protected void doGet(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {} 

  @Override
  protected void doPost(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {
    RequestDispatcher rd;
    rd=request.getRequestDispatcher("/select");
    String table=request.getParameter("table");
    try{
       ad = new AccesoDatos("gencod");
       if(table.equals("libros")){
         String isbn=request.getParameter("isbn");
         String titulo=request.getParameter("titulo");
         String autor=request.getParameter("autor");
         String precio=request.getParameter("precio");
         isbn = isbn.trim();
         titulo = titulo.trim();
         autor = autor.trim();
         precio = precio.trim();
         if(isbn.isEmpty() || titulo.length() < 5
            ||autor.length() < 10 || precio.isEmpty())
            mensaje="Error: El titulo es corto (< 5 letras), el nombre " +
            "del autor es corto (< 10 letras) o algun otro campo esta vacio"; 
         else
            if(ad.setLibro(isbn, titulo, autor, precio) == 0)
               mensaje="Error: No se pudo modificar libro"; 
            else
               mensaje="Se modifico libro exitosamente (isbn " + isbn + ")";
       }
       else if(table.equals("temas")){
         String id=request.getParameter("id");
         String tema=request.getParameter("tema");
         id = id.trim();
         tema = tema.trim();
         if(id.isEmpty() || tema.length() < 5)
            mensaje="Error: Tema muy corto (< 5 letras)";  
         else
            if(ad.setTema(id, tema) == 0)
               mensaje="Error: No se pudo modificar tema";
            else
               mensaje="Se modifico tema exitosamente";
       } //endif table == temas
       request.setAttribute("mensaje",mensaje);
       rd.forward(request,response);
    } catch(ClassNotFoundException cnfe){
       rd=request.getRequestDispatcher("/index");
       mensaje="Error fatal. Excepcion de clase no encontrada: " + cnfe.getMessage();
       request.setAttribute("mensaje",mensaje);
       rd.forward(request,response);
    } catch(SQLException sqle){
       rd=request.getRequestDispatcher("/index");
       mensaje="Error fatal. Excepcion de SQL: " + sqle.getErrorCode();
       request.setAttribute("mensaje",mensaje);
       rd.forward(request,response);
    } 
}
    @Override
    public String getServletInfo(){ return "Short description"; }
}